from django.db import models

# Create your models here.
class Student(models.Model):
    # SEX_CHOICES自己配置的选项
    SEX_CHOICES = (
        (0, '女'),
        (1, '男')
    )
    # verbose_name='姓名' 表示字段名备注为姓名，如果不写就会显示name或者其他的
    # max_length=30 设置字段长度
    name = models.CharField(max_length=30, verbose_name='姓名')
    # null=True 表示当前字段可以为空   blank=True 前端可以不传递这个数据
    age = models.IntegerField(verbose_name='年龄', null=True, blank=True)
    # choices=SEX_CHOICES 表示选项，会变成下拉框,  SEX_CHOICES自己配置
    sex = models.IntegerField(verbose_name='性别', null=True, blank=True, choices=SEX_CHOICES)
    # 创建当前数据的时间
    # DateTimeField当前的日期格式
    # auto_now_add=True 表示添加的时间
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    # 更新时间  auto_now=True修改时间
    update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
    # 逻辑删除
    # 正常用户默认情况下default=False，
    # 如果用户需要注销账号的话default=True，用户不能进行查询使用，等于没有了，
    # 但是后台数据库还是会有该用户的信息，不会删除
    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')

    classes = models.ForeignKey('Classes', on_delete=models.CASCADE, verbose_name='班级')

    # 逻辑删除
    def delete(self, using=None, keep_parents=False):
        self.is_delete = True
        self.save()

class Classes(models.Model):
    name = models.CharField(max_length=30, verbose_name='班级名')
    slogan = models.TextField(null=True, blank=True, verbose_name='口号')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')

    # 逻辑删除
    def delete(self, using=None, keep_parents=False):
        self.is_delete = True
        self.save()

    def __str__(self):
        return self.name


